{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "a2068a3f",
   "metadata": {},
   "source": [
    "# Optional Lab: Classification using Logistic Regression\n",
    "\n",
    "In this lab, you will contrast regression and classification."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "b23e8311",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-06-17T10:46:31.986198Z",
     "start_time": "2022-06-17T10:46:30.231128Z"
    }
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "%matplotlib widget\n",
    "import matplotlib.pyplot as plt\n",
    "from lab_utils_common import dlc, plot_data\n",
    "from plt_one_addpt_onclick import plt_one_addpt_onclick\n",
    "plt.style.use('./deeplearning.mplstyle')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3b803d5c",
   "metadata": {},
   "source": [
    "## Classification Problems\n",
    "<img align=\"left\" src=\"../work/images/C1_W3_Classification.png\"     style=\" width:380px; padding: 10px; \" > Examples of classification problems are things like: identifying email as Spam or Not Spam or determining if a tumor is malignant or benign. In particular, these are examples of *binary* classification where there are two possible outcomes.  Outcomes can be  described in pairs of 'positive'/'negative' such as 'yes'/'no, 'true'/'false' or '1'/'0'. \n",
    "\n",
    "Plots of classification data sets often use symbols to indicate the outcome of an example. In the plots below, 'X' is used to represent the positive values while 'O' represents negative outcomes. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "87a2d46e",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-06-17T10:46:32.002202Z",
     "start_time": "2022-06-17T10:46:31.989201Z"
    }
   },
   "outputs": [],
   "source": [
    "x_train = np.array([0., 1, 2, 3, 4, 5])\n",
    "y_train = np.array([0,  0, 0, 1, 1, 1])\n",
    "X_train2 = np.array([[0.5, 1.5], [1,1], [1.5, 0.5], [3, 0.5], [2, 2], [1, 2.5]])\n",
    "y_train2 = np.array([0, 0, 0, 1, 1, 1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "4b3d7636",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-06-17T10:46:32.743100Z",
     "start_time": "2022-06-17T10:46:32.006204Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAj0AAADVCAYAAAC8GUHHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAA1x0lEQVR4nO3de1xUdf4/8Bc3QTBGxRug4q2QixqpZUnOpKlYolZaLAOh1ubqptlqmWla7fermdL2rV+uubXedVq7SIii5gpKSiqUggoWpoaadwlEZYDP748jc5FhAGHmcGZez8fDB+ecz2HmfQbP57znnM/FRQghQEREROTgXOUOgIiIiMgemPQQERGRU2DSQ0RERE6BSQ8RERE5BSY9RERE5BSY9BAREZFTYNJDdpOeng53d/c67evi4oLff//dYlmXLl2QmZnZmKFBo9FAp9PVut/bb7+Nv/zlL4363kRNmbVzsal59913MWTIkFr3S0tLQ8+ePS2WnTx5El5eXo0dWp0/x7rWRXR36nYFImoEarUa5eXlcodBRA5q3rx5codATRzv9CjcsWPHMGjQIPj6+uLBBx/EwYMHDWVdunTBrFmz0KtXL6hUKrzyyiuGsoqKCsybNw+dO3dGu3btMGvWLFRWVlZ7/b179yIwMNCs7JVXXsGsWbMAAEOHDkWrVq1wzz33QKPR4JdffgEgfVvy9PTEwoULERQUhIiICGRmZqJLly6G15k4cSL8/Pzg4+OD/v3748CBA2bv/fHHH6N79+7o0KEDli5davH4b9y4gSlTpqB9+/bo2LEjPvjggxo/qy5dumDatGno2bMn/Pz8MHfuXIv73bp1C9OmTUP79u3RuXNnvP/++wCAH374Ae+++y6WL18Od3d3REZG1vheRI7gySefBAB07NgR7u7u2L59OwIDA5GdnQ0A+M9//oM+ffoY9h82bBi++eYbAMD333+Pvn37wtfXF4MHD0ZBQYHF91iwYAFiYmLMtvXp0wdbt25FYWEhevbsCR8fH/j5+SE+Ph63bt0CAKxcuRIDBgww1COvvvoq3nvvPYwfPx4AoNfr0bt3b/j6+kKlUiE6OhqXLl0yvEdV3dGuXTsEBwdj7969FuM7deoUnnjiCahUKoSFhWHnzp0W96uq89544w0EBgaic+fOhs/iTmfOnMHIkSOhUqkQHh6Obdu2AQDef/99pKenQ6vVwt3dHXPmzLH4+9QAghSrrKxMdO/eXSxfvlyUlpaKjRs3ivbt24s//vhDCCFEUFCQiImJEadPnxYnTpwQKpVKHDx4UAghxPvvvy8GDRokzp07JwoLC0V4eLjYsGGDxffp3r272LlzpxBCiIqKCuHv7y9ycnKEEEJkZ2eLkpISodfrxYIFC8TTTz8thBDi119/FS4uLuKdd94Rly9fFqWlpWLfvn0iKCjI8LqHDx8W165dExUVFWLNmjXigQceMJQBEHPnzhUXL14UBw8eFPfcc484ceKE4bj27dsnhBBiypQpYty4ceLq1avi2LFjwt/f31B2p6CgIDFhwgRx5swZ8fPPP4sOHTqItLQ0IYQQarXacPxz584VUVFR4tKlS6KgoECEhoYKnU4nhBBi/vz5YtKkSfX8SxEpFwBx7tw5w/qzzz4r/vnPfwohhEhISBA+Pj7i9OnTQggh/Pz8xO+//y4uX74s/Pz8RHJysigtLRX/+Mc/RFhYmKioqKj2+idPnhQ+Pj6iuLhYCCHEsWPHRPv27YVerxclJSUiNzdXlJWVieLiYhEdHS0++ugjIYQQK1asEC1bthQ6nU7cuHFDlJaWioULF4qEhAQhhFRXZWVliZs3b4qbN2+KyZMni7/97W9CCCF27dolfHx8xPr160VxcbFYvny56N69u6ioqBC//vqr8PT0NLxG7969xZIlS0RpaalISkoSbdu2NcRqqqrO+/jjj8W1a9dESkqK8PX1NdTHpp/jo48+Kt566y1x/fp1sWvXLtG6dWtx6tQpIYR5XUSNj3d6FCwzMxNubm7485//jObNm2Ps2LG47777DN8aAOmuTKdOndC1a1fcf//9yM/PBwB8/vnnWLx4MTp06IDAwEBMnDgR27dvt/g+Wq0WGzZsACC1y2nXrh3Cw8MBSN9Yxo4di06dOuHdd99FXl6e4feaNWuGefPmoXXr1mjevHm11y0uLsaECRPQuXNnTJo0yex3AeCvf/0r2rRpg759+0Kj0eC7774zKxdCYMWKFfj444/RsmVL9OzZE+PGjavxOADgpZdeQkBAAHr06FHjvuvXr8e8efPg5+eHbt26YcaMGVizZk2Nr0nkTCIjI7F//34IIZCZmYmXX34Zmzdvxq+//opWrVqhffv2SElJQd++fTFy5Eg0b94c06dPxx9//GG4Q2QqKCgIffv2RVJSEgBgw4YNiImJgbu7O3x8fLBt2zZERkaia9eu2Lp1q1k98dBDD+G5556Dl5dXtTrG1dUVOTk5GD58ODp37ozPP//c7Hc7duyIP/3pT2jRogVefPFFXLp0qdrdqP3790Ov12PGjBlo3rw5Ro0aBX9/f4vHAUh13ssvvwyVSoUnnngCQUFB1dof/vbbb8jOzsZbb70Fb29vaDQaPPnkk/jPf/5Tvz8E3RUmPQp29uxZBAYGmm0LDAzEmTNnLO7v5eWFsrIyAMDp06cxaNAgeHl5wcvLC2+88QYuXrxo8ffi4+Px1VdfoaysDDqdDvHx8QCk29fx8fGIi4vDjz/+iJSUFFRUVNQp9hMnTmDEiBEYPHgwMjMzcfjwYau/26ZNG1y5csVs28WLF3Hjxg0EBQUZjuOf//wnLly4UKcYLL0mUP1ztfaZEjmbRx99FPv378fBgwcRERGBMWPGYPPmzTh48KDhkW9966b4+HisX78eAPDFF18Y6pj33nsP//rXv7Bo0SL88ssvmDNnTp3rGJ1OhzfffBMzZszAkSNHsGzZshp/18XFBa1bt65WH5w+fRr5+fmG+sXLywtHjx7F+fPn6xSDpTrm7NmzaNeuHTw8PAzbWMfYDxsyK1hAQAB+++03s22FhYXVKhtL/P398eWXXyIiIqLWfXv06IH77rsPycnJ2LRpE3788UcAwJ49exAdHQ2tVgsA1e7UWLN//3706dMHL7/8MgDpebg1p0+fxrBhw8y2+fn5wdPTE2fPnkXr1q3r/N5VTp06hXvvvbfa9qrPtXPnzgDMP1M3NzcIztFLTsTV1dXs/3zv3r1x9uxZfPHFF4iOjsaDDz6II0eOYPfu3Rg4cCAA6Ry6887smTNnaqybxo0bh1dffRU7duyAi4sL+vbtC0DqZfXaa69Bo9HUO+60tDS88MILiI6OBiAlNjUpKyvD+fPnERQUhJs3bxq2+/v7Izw8HIcOHar3+wNSHRMUFGS2LSAgAOfPn0dZWRmaNWsGQKpjqtpGsY6xLd7pUbABAwagoqICn3zyCW7cuIEvv/wS+fn51ZIDSxISEjBjxgycOHECN2/eRHZ2NlJTU2vcPz4+Hq+++ir69OmDgIAAAEC3bt1w6NAhXL16FWfOnMGSJUvqHHu3bt3w888/4+zZs7hy5Qr+/ve/V9snNzcXer0e3377LQ4fPowRI0aYlbu5uSE2NhZTpkzBuXPnUFpaiu+//x4ZGRk1vm9eXh70ej0yMjKQlJRUrQElAPzpT3/C/PnzcfHiRfz666/44IMPDIldx44d8cMPP+DKlSs4e/ZsnY+XSKk6duyIHTt24Nq1a/jjjz/g6uqKhx56CJ999hmioqLg6uqKxx57DCtWrDDc6XniiSeQlZWFTZs24caNG/jwww/RokWLGr9kqVQqREVF4YUXXjDc5QGkemLv3r0oKyvDgQMHDI/Z66Jbt27Yv38/SktLkZ+fj2XLlpmVFxcX4+TJk7hx4wbeeecdPPzww+jQoYPZPg899BBu3bqFxYsXo6SkBJcvX8Y333xT7ctmlcrKSuTl5eHWrVv45JNP4Onpif79+5vt06lTJ0RERGD+/PkoLS1Feno6UlJSMHbsWMPnnZaWhuLi4jrftaa6Y9KjYB4eHkhOToZOp0O7du2waNEiJCcnw9fXt9bfnT17NiIjIzFkyBD4+fnhxRdfNDz6suS5557D77//jri4OMO2Z555Br1790bHjh3x+OOPo1u3bnWO/cEHH0R8fDyCg4PRt29ftG3b1mKMKpUKs2fPxldffQWVSlVtn//7v/9DmzZt0L9/f7Rv3x6vv/46XF1r/m/96aefws/PD+PHj8fnn39u1pusyty5cxEcHIywsDAMGjQIcXFxhuRo3Lhx8PPzQ0BAACZPnlzn4yVSqoULF2LmzJno1KkTcnJyAEiPuHr37m24wxodHQ0vLy8EBwcDkO7CJiUl4Z133kG7du2QlJSEpKQkuLm51fg+8fHxKCwsNHzBAKRz8ejRo1CpVHjttdcMbQnrYvLkyXB1dYWfnx+0Wi1CQ0PNym/cuIGoqCj4+flh//79WLVqVbXXaNasGVJSUrBnzx4EBQUhODgYK1euhKenp8X3rKysxIsvvojWrVtj7dq1+Prrry0e84YNG3Do0CH4+/tjypQpWLt2raEumjFjBtLT09G2bVusXr26zsdLdeMieB+NnESXLl2g0+kwYMAAuUMhIgdz8uRJ9OzZ0+zxGDU9vNNDREREToFJDxERETkFPt4iIiIip8A7PUSkeDqdDj169DDbVl5eDq1WC7VajdjYWOj1epmiI6KmokmP01NUVCR3CETUAJZ63DW2jRs34sKFC9W6G6empiI0NBTr1q3DggULsGXLFowePdpsH9YxRMpW3zqGd3qISLE2bdqEwsJCTJs2rVpZXl6eYVyYfv364dixY/YOj4iaGCY9RKRY27dvR1JSEjQaDXJycjB9+nRDmRDCbIwUayPyEpFzaNKPt0zZ4zY5ETWcPR8ZLV261LAcGRmJDz/80LAeEhKC7OxsDB8+HFlZWQgLC7P6WqxjiJShIXUM7/QQkUOpGj07KioKubm5UKvVOHToULVpTIjI+TTpLuum2VzVt7Bbt26hqKhIMbeqXV1d0bp1a8XES9RQls7bpkpJsRI1FiEErly5gsrKSrlDqRMhBFq2bGmYoLUh561iHm9VKSoqQtu2bRWTRNy8eRNXrlyBn5+f3KEQERHhypUr8PHxgZeXl9yh1EllZSUuXbqEdu3aNfi1FPd4y8XFxXrCk59fv+025uXlpZhsmoiIHF9lZaX1hKeJXUddXV0b7UaH4pIeqxITgbAwQKcz367TSdsTE+WJi2yviZ2kVikpVkB58RLR3XPw66jjJD2JicDMmUBFBaDVGv9gOp20XlEhldvgDzZ79mx06tQJ3333XaO/NtWBkk5SJcUKKC9eIrp7znAdFU3YtWvXDP+qXLhwofqOeXlCuLkJARj/uboKMXq09NN0u5ubtH8tJk+eLA4cOCCEECIxMVF88803VvefP3++2LFjh8UyizFT41iyxPxvvmGDtH3DBvO//ZIl8sYphLJiFeKu47V03jZVSoqVqLEo/TrakPPWMe70BAcDa9cCriaHU1kJJCVJP6u4ukr7BQfX+pJxcXFYt24dAGDr1q1o1aoVNBqN2b///ve/jX0kVB/5+cCsWcb1ykrp28iYMdJP07/9rFnyPo5RUqyA8uIlooZxkuuozXtvRUVFYd++fbh8+TLc3Y1vV15ejoSEBBQWFiIwMBCrVq2Ch4fH3b/R7bE5qlXIVVxdgXXrjPvV4pFHHsHrr7+O3Nxc3HvvvVCr1UhLS7v7+KjxVZ2kpn/zqpPUVD1OUptRUqyA8uIlooZzguuoze/0pKamGua/uXN7aGgo0tPTER4eji1btjT8zWJigOhoy2XR0XX+Q1UZPHgwJk2ahPj4eOzbt0/2DJUsiImRTkLXGv4r1/MktSklxQooL14iajhHv47W+4HYXVCr1UKv15ttW7x4sUhJSRFCCLFt2zaxcOHCar9X5zY9Ve5sa3Dns8mqNgl1lJeXJ7p3717rfosWLRJhYWFCo9GI5OTkauVs02MHo0db/ruPHi13ZNUpKVYh6h2vktrJKClWosai9OuoItv0iMaeDLCqdXlNY+JUtUm4sxeKFWfOnEF8fHyt+1Xdvtu1axdGjhxZ59enRqLTAcnJlsuSk+v1N7c5JcUKKC9eIrp7TnAdlS3pqZoMEACysrIQEhJy9y+Wnw/ExVVvbDV6dPVGWXFxdW50uXLlSsTFxd19XGR7NjhJbUZJsQLKi5eI7p6TXEdtnvSMHz8eR48ehVarxYkTJ2wzGWBwMLBokXG9qq3Bpk3V2yQsWlTnRperV69G9+7d7z4usi0bnaQ2oaRYAeXFS0QN4yzX0Xo/ELOjerfpWbJEGj/gzmeOGzZI22Ua/4RtemxISWPfKClWIRQzTs+lS5fE4MGDhUajERqNRhQWFpqV+/r6CrVaLdRqtVi3bp2ssRI1BUq/jjbkvHWspEcIIfLyREGREJtPSv/yrxq3y4VJj4010ZPUIiXFKsRdxWvvREKv1xs6SsyfP9/QQaLKwIEDa/xdJj3kjOpyHa3XdjtorKTHRQgh5L7bVBNL08dfvHgRbdu2tbh/6mlg0Y9A2lnz7QM7AK/dD4zuaqtIrbMWMzWS/HzLt1tr2i4nJcUK1DteS+etPTzyyCNo1aoVNm3aZDbml7+/P7p3746goCAsX74cPj4+ssdKJKfarklXbwEr84Ctp4E/yoAO3kBMD+DpbkAztxp/zaZMY27IeeswSc+iH4E3Mq2/3lt9gXcfbNQQ64RJDzkTOROJZcuWwd3dHS+++GK1sg8//BDu7u54+eWXDduY9JAzsnZN2vAz8Oc04Hp59bKge4BvhgMRMlzOGivpcYhpKDYWmCc8bi7AIH9AEwC4mxzh37OAFXmN//7vvfceHn30UQwZMgSnT59u/DcgohpdvXoVZWVlAKShL/R6vaGspKTEsO7t7Q1PT09ZYiRSgq9PANrvLCc8AHCqGBiSDPx8rfHf217XUcUnPUIA8w8Y1zUBwAktkD4G2DUaOB0HDO9kLH/3IFBRQw9cU1OmTMHBgwcBAB988AE2bdpkcb+rV69iz5492LNnD/7+97/jH//4x90fDBHV28mTJw2ju6ampuL555839BI9deoUIiMjodFosGPHjjqNF0LkjPQVwNQMoOrRTzdfYNkgYPdo4N3+wD23nxhfvQXM/qFur9kUr6M2n3vL1jLOAceuSsstPICvhgOtvYzl/j7AxmFAl7XAlVvAyWJg+2/AiCDrr1s1UVq/fv2wdetWzJ07FxqNxmyfefPmwdfXF2FhYQCAfv364d13323EoyOi2kRERGDv3r1m23S3xw4KCwvDDz/UsYYmcmLJp4Cz16XlNl7A/mcAv9vX0kcDgMGBQOQmaX3Tr9K+AT4WX8qgKV5HFZ/0ZF00Lj/V1TzhqXJPM+C5HsA/j9z+nUu1Jz11nSjtwIEDjTuyNBERkZ3t/d24PD7YmPBUGegPDGgPZJ4HKgSw/wIwppbOQU3xOqr4pEdv8qiqlZXH9aZlZRV1e+2qidKWLFmCffv2Yfbs2Wbl8+bNQ0REBHJycgA0wsjSREREMigzuZa2bW55nzYmiZBSr6OKT3o6tTAup56W2vjcmSQKIXW9q9K5BepEq9Vi/fr1ePjhhwHAYoYKAJGRkRg0aBDc3NywcuXKugdPRETUBHS7x7j85QlpmBfTa+nlm8B/zxjXu9ex01RTu44qviHzyC6AbzNp+XgRkHio+j7LjwI/XpKWm7sDz9RxROy6TpT2xhtvYPfu3di1axeCgmp5bkZERNTE/OlewON2RnDggtSo+cpNaf2XImDsNqD0dq+uXq2BB9rU7XWb2nVU8Xd6WngAfw4xJjuv7QO2nAJi7pW6rm8sALb9Ztz/+fusPwYztXLlSsyfP7/xgyYiImpC2nsDk0KB/5crrX+SK90w6OAN/FZivu+cvtWfqNSkqV1HHWJwwlK9NHZA5nnrr3d/GyB9tPHOkL1wcEJyJkoa8E9JsRI1lpquSWUVwLjtwLcna/7d/3lQSnrsjYMTmvD2AHZEA3H3Aa4Wsk8XAGO7AbtG2T/hISIiUoJmbsDXw4F/PwZEmDy+cgHwRGfgu2h5Ep7GpLjHWzXdmGrhAawZAvzvg8CqfOPYPfeqgISe0kBLcqisrKwxZiIiInsTQqCyshKurtXve7i5AhN6Sv8ulALFeqk3l9w3DBrrOqq4pMfHxwcXLlyosR9/cwB/CQJg2g7qFnDxosXdbU4IgZYtW8rz5kRERHdo2bIlLl26VOt4OC4AfAHcKgNkuoQCkK6jphMFN4Qik57GOngiIiJn06xZM7Rr107uMGThEG16iIiIiGrDpIeIiIicguIebxERmbp8+TKeffZZVFZK4+ivXbsWgYGBAIDy8nIkJCSgsLAQgYGBWLVqFTw8POQMl4hkZPM7PeXl5dBqtVCr1YiNjYVerzeUFRcXY9SoURgwYAAiIyNx6tQpW4dDRA5GpVJh27Zt2LVrF9RqNQ4dMg7LnpqaitDQUKSnpyM8PBxbtmyRMVIikpvNkx5rlc7OnTsxYMAAZGZmYtq0afj2229tHQ4RORh3d3e4u7vjkUcewYEDBzB06FBDWV5eHiIiIgAA/fr1w7Fjx+QKk4iaAJsnPdYqHY1Gg23btmHu3LlIS0vD2LFjbR0OETmovXv3Ijo6GqtWrTJsE0LAzc3NsF5bF10icmw2T3qsVTp5eXkYNGgQXnjhBQghsG/fPluHQ0QO5urVqygrKwMg1S+mj9BDQkKQnZ0NAMjKykJISIgsMRJR02DzpMdapbNv3z4EBQWha9euiIuLw549e2wdDhE5mJMnT0Kj0UCj0SA1NRXPP/88YmJiAABRUVHIzc01tPUZMWKEzNESkZxsPuGoae8Jf39/rFmzBvHx8dDpdLh06RJiY2NRVlaGZs2a4V//+pfZlPKcDJBIeZR03iopViKSNOS8Vdws60TUtCnpvFVSrEQkcfpZ1omIiIhqw6SHiIiInAKTHiIiInIKTHqIiIjIKTDpISIiIqfApIeIiIicApMeIiIicgpMeoiIiMgpMOkhInJk+fn1207kwJj0EBE5qsREICwM0OnMt+t00vbERHniIpKJu9wBEBGRDSQmAjNnSstarfQzJkZKeLRaoLLSWD5jhjwxEtkZ594iokZl7/P2+PHjmDhxIsrLy9GxY0ds2LABHh4eZjFEREQAAF566SXExsbKFqvd5OdLd3IqKozbXF2B6GggOVlKeKq4uQFHjgDBwfaPk+guNOS85Z0eIlK0gIAA7Ny5E56enpg6dSqys7Px0EMPGcp79eqFtLQ0+QKUQ3AwsHat8Y4OIP1MSjLfz9VV2o8JDzkJtukhIkVr0aIFPD09IYRAQUEBevToYVZeUFCAyMhIaLVaXL9+XaYoZRATA6xbJyU2lri6SuUxMfaNi0hGTHqIyCHMnDkTEyZMgJ+fn9n2c+fOISMjA/3798eKFStkik4mMTHSIy1LoqOZ8JDTYdJDRIpWVlaGSZMmYeDAgRg3bpxZWUlJCfR6PQDA29sbnp6ecoQoH51OasNjSXJy9V5dRA6ObXqISNF0Oh1SUlKQn5+Pjz76COPHj0dqaip0Oh1OnTqFiRMnonnz5mjbti3WrFkjd7j2Y9pLy5LKSvNeXUROgL23iKhRKem8VVKs9cLeW+TAGnLe8vEWEZGjCQ4GFi0yrlc1Wt60qXrj5kWLmPCQ07B50lNeXg6tVgu1Wo3Y2FjD8/UqKSkpGDZsGAYNGmSWvRERUQPMmAEsWSLdyTHtpVXVq8vNTSrnwITkRGye9KSmpiI0NBTp6ekIDw/Hli1bDGWFhYX47LPPsHnzZuzevduxbi8TEcltxgzp0dWdbXZiYqTtTHjIydg86cnLyzOMhtqvXz8cO3bMULZ161YUFRVh5MiRGDNmDC5evGjrcIiInEtNj674SIuckM2THiEE3NzcDOsuLi6G5atXr2Lq1KnYvn07xo8fj0ROfkdEREQ2YvOkJyQkBNnZ2QCArKwshISEGMqCg4ORk5MDQGqB7e7OHvRERERkGzZPeqKiopCbmwu1Wo1Dhw5hxIgRiLn9fHnUqFEoKCjAY489hg8++ADTp0+3dThERETkpDhODxE1KiWdt0qKlYgkHKeHiIiIqBZMeoiIyHHk59dvOzkVJj1E1CStXr1a7hBIaRITpek37pxIVaeTtrOHsNNjdykiktXRo0erbRNC4NNPP8Xzzz8vQ0SkSImJwMyZ0rLpRKqmE69WlXNQRqfFhsxE1Kjqe976+vpi7NixuLMq2rFjBwoLCxs9PlOsYxwEJ1h1Kg05b+t0p2fmzJl44YUXzMbYISJqDCEhIVi8eDH8/PzMtj/55JN1+v3jx49j4sSJKC8vR8eOHbFhwwZ4eHgAkOb+S0hIQGFhIQIDA7Fq1SpDGTmQ4GBg7VrjHR1A+pmUZL6fq6u0HxMep1WnNj0lJSUYOHAgBgwYgOXLl6O4uNjWcRGRg6u4/a18x44daNmyZbXylJSUOr1OQEAAdu7ciczMTPj7+xsGQwWsz/1HDqZqIlXXGi5rVTPN3zkPGTmVOiU9y5Ytw7lz5zB9+nR888036NixIxISEpCenm7r+IjIQUVFRaGkpAS+vr5mU9XUV4sWLeDp6QkhBAoKCtCjRw9DmbW5/8gBxcRIj7QsiY5mwkN1773l6emJmJgYbN26FStXrsTmzZsxePBgdO/eHf/zP/9j82fvRORY7r//fgwcOBBnz541bNu9ezceffTRu3q9mTNnYsKECWaPyazN/UcOSKeT2vBYkpxcvVcXOZ06Jz1nz57FokWLEBoaipdeegmxsbE4cOAA/v3vf+Po0aPo2bOnLeMkIgezePFiTJ48GQMHDoROp8PQoUPx7LPPYsyYMfV6nbKyMkyaNAkDBw7EuHHjzMqszf1HDsa0l5YllZVSORMfp1an3lvDhg3Dnj17MHToUCQkJGDUqFHVGgNeuXIFrVu3btTg2LOCSHnqc94ePnwY8fHxyM3NRUJCAj755BM0b968Xu+3evVqvPnmm4bHWuPHj0dqaip0Op1ZQ2Z/f3+sWbPGrO5iHeMg2HvLqTTkvK1T0pOYmIi4uDi0b9++/tE1ACskIuWp63n79NNPIy0tDdOnT0efPn0wZcoULF++vM69thoD6xgHYjpOj2mj5TvvAC1ZwnF6FM7mXdZn8D8IETWye++9F5999pnhDnG3bt0watQonDx5En/9619ljo4Up+o6NWuW1C29qtFy1c+4OGDRIiY8To6DExJRo2rIeXvmzBk8+eST+Omnnxo5KstYxzig/HzLj65q2k6Kw1nWicghBAYGYs+ePXKHQUpWU2LDhIfApIeImph77rlH7hCIyEEx6SEiIiKnwKSHiIiInAKTHiIiInIKNk96ysvLodVqoVarERsbC71eX20fnU5nNl8OERERUWOzedJT2yzHGzduxIULF9ChQwdbh0JEJKtfioBFPwJ/+x545wCw/zzQdAcNIXI8Nk96rM1yvGnTJhQWFmLatGm2DoOISDYXbwBjtgL3rgfeyAT+cRh4+yDw0NfAgK+BI1fkjpDIOdg86bE2y/H27duRlJQEjUaDnJwcTJ8+3dbhEBHZ1ZWbwKBNQNJJy+X7LwCR3zDxIbKHOk1D0RBVsxwPHz4cWVlZCAsLM5QtXbrUsBwZGYkPP/zQ1uEQEdnVmz8AedeM6090BgYFALlXgC9+AfSVwLUyYOIu4IdnZAuTyCnY/E5PVFQUcnNzoVarcejQIYwYMQIxVXOhEBE1UFRUFFQqFcrLy6uVqVQqaDQaaDQarF+/3u6xXbsFrD5uXF/5GJDyJDArAlgzBNj7FOBxuxbef0Fq40NEtsO5t4ioUclx3mo0Gnz33Xdwdze/eR0ZGYmMjIwaf8/WsX77KzA6VVoOawXkPAeYPOEHAMTvBNbeTozm9wPe7t/oYRA5FM69RURkQUFBASIjI6HVanH9+nW7v39RmXE53K96wgMAvVobl/8oq15ORI2HSQ8ROaxz584hIyMD/fv3x4oVK+z+/u29jcvfnwPKK6vvk3bWuNyuue1jInJmTHqIyCGVlJQYBkP19vaGp6en3WNQBwBtvKTlwuvArExj4iMEsCoP2HrauP+47nYPkcipMOkhIkUbP348jh49Cq1WixMnThg6Spw6dQqRkZHQaDTYsWMH4uPj7R6bpxvwcrhx/YNDQNe1wJ92AL2+AMbvMpaN7gJ0Z9NFIptiQ2YialRKOm/tEau+AhiTCmw5XfM+PVsCu8cAbfl4i6hWbMhMRNREebgBm6KAt/sBbb3My7zdgUmhwPdPMeEhsgebD05IROTsPNyA+f2BNx4A0s4AF24Avs2kNj8t7d/UiMhpMekhIrITTzdgeGe5oyByXny8RURERE6BSQ8RERE5BSY9RERE5BSY9BAREZFTYNJDREREToG9t4iIHNytCuDgBWkC1HbNgQfaAq4WJj8lcnRMeoiIHFSpHlj4I/DpEeDiTeP2rvcA03sDL/di8kPOhUkPEZEDKi4DhiYDP1yoXvZrMfDK98De88C6IYAbGzqQk+B/dSIiB/TyHvOEJ8AHGNoRaNnMuO2LX4DFP9k9NCLZMOkhIkWLioqCSqVCeXm52fby8nJotVqo1WrExsZCr9fLFKH9nSkB1v1sXF/8MHAqDtgeDZxNAF4KNZb9Xw5QVmH/GInkwKSHiBQtNTUVERERFreHhoYiPT0d4eHh2LJliwzRyWNjAVAhpOVB/sDM+wH327V9c3fg40jA31ta/70USDsrS5hEdmfzpMfat63jx48jMjISAwYMwNixY53qmxgR2VZeXp4hGerXrx+OHTsmc0T2c7bUuDysU/XyZm6AJsBk/+u2j4moKbB50mPt21ZAQAB27tyJzMxM+Pv7Izs729bhEJGTEELAzc3NsO7i4jzdlFp4GJd/LrK8j+l20/2JHJnNkx5r37ZatGgBT09PCCFQUFCAHj162DocInISISEhhi9SWVlZCAkJkTki+3m8o3FZ9wtw5Ip5+eaTwMGL0rKHK/Cov91CI5KVzZOeunzbmjlzJiZMmAA/Pz9bh0NEDmb8+PE4evQotFotTpw4gZiYGABSA+fc3Fyo1WocOnQII0aMkDlS+3m4PRDRRlq+VQE89BXwSgbw+TEgYScwJtW477juQHtveeIksjcXIYSw5Rts3rwZOTk5mD17NhYuXIiwsDCMGjUKAFBWVoapU6di+PDhePrpp6v9blGR8f6rSqWyZZhE1EiUdN4qKdb6yr4IDNoEXC+veZ+OPsAPz0jd2YmUoiHnrc3v9Fj6tlX1TUyn0yElJQUfffQRNBoNVq5caetwiIicwgNtgV2jgeCWlssf6QBkPMWEh5yLze/0NIQjfwsjclRKOm+VFOvdqhTA9t+ALaeBolvS3FvjugMPtpc7MqK705DzltNQEBE5MFcXIKqz9I/I2XFwQiIiInIKTHqIiIjIKTDpISIiIqfApIeIiIicApMeIiIicgpMeoiIyGYqBVBWIXcURBImPURE1KgqBbCxABicBDT7FPBcDvivAmbtA34rkTs6B5OfX7/tTo5JDxERNZob5cDorcCz24FdZ4GK28Pf/l4KvP8TEKoDdvwma4iOIzERCAsDdDrz7TqdtD0xUZ64mjAmPURE1GheSgc2n6q5vEQvTXh69ErN+1AdJCYCM2cCFRWAVmtMfHQ6ab2iQipn4mOGSQ8RETWKY1eBtceN61PCgMJ4QD8J2BQlTXAKAKXlwMIf5YnRIeTnA7NmGdcrK6VEZ8wY6WdlpbFs1iw+6jLBpIeIFK28vBxarRZqtRqxsbHQ6/Vm5SqVChqNBhqNBuvXr5cpSufw72PG5Sc6A58MAgJbAO6uwOiuwH+GGcv/84s0FxjdheBgYO1awNXkEl5ZCSQlmSc8rq7SfsHB9o+xiWLSQ0SKlpqaitDQUKSnpyM8PBxbtmwxK+/VqxfS0tKQlpaG2NhYmaJ0DkevGpeft3CdfbgD0N1XWi6rBH4ttk9cDikmBli3zjzxMeXqKpXHxNg3riaOSQ8RKVpeXh4iIiIAAP369cOxY8fMygsKChAZGQmtVovr16/LEaLTcHMxLt8sr14uBHDLpPu6q0v1fageYmKA6GjLZdHRTHgsYNJDRIomhICbm5th3cXF/Ep67tw5ZGRkoH///lixYoW9w3MqD7Q1Ln96VOq6birlFFB4O+9s4QH08LVfbA5JpwOSky2XJSdX79VFcJc7gIYorwS+PQl8WQCcvwH4uAOP+gMTegJtmssdXXVHrgCfH5NuAVcK4F6VFGu/dnJHVt0fZcCa48B3hdKynxcwqgswthvgpej/NeRoQkJCkJ2djeHDhyMrKwthYWGGspKSEnh6esLDwwPe3t7VEiJqXC+EAH/Pkuq3feeB6C3A6xFAoI9UV79z0Ljv8/cB3h6yhap8Vb20TNvwmKpq3Azwjo8JFyGEqH03eRQVFRmWVSqVWVnaGSDhv8BpCwNdeboBsyOAef2AplDHXb0FjP+vdNJbog4A1j8OBPjYNawa/b8cYPYPUtfSO7X1ApZrgDFd7R4WKYS189YWysvLkZCQgMLCQvj7+2PNmjWIj4+HTqfDkSNHMHHiRDRv3hxt27bFmjVr4OXlJVuszuD1fcDin6zv09YLyBoHdGphl5AcT36+NA5PhemzQlfpkVZysnki5OYGHDniUI2ZG3LeKjLp2VkIjEgB9DUkuFWm9gI+irRVdHVTXAaok4AfL1nfr5svsPcpoL23feKqyYIsYM5+6/u4ANgwFHiuh11CIoVRUiKhpFiVoqISeOV74JNcy+UdfYDNTwB92tg3LodTNU4PYN5o+c47QEuWADNmyBenDThV0nOzHOiyVnqcBQAtmwFTwqXHWqeKgX8eAQ5dNr7GtpHAsE72jNrcq98DHx42rj/VFYi9V+rC+dUJYN1xoOoPENNDSibk8tMlIGKjcf1eFfDXcCCkFbD/glSJ/V4qlXm7A6fimuZjRJKXkhIJJcWqNAcvSPXx7nNSvd35HumRlvY+qT0PNYLERGkcnrVrzR9h6XRAXBywaJHDJTxAE096TG89BwYGYtWqVfDw8Ki1DLB8YKvzpcdagHSL9MBYIOgek/erBMZuA5JOSutPBknfKuRQogcCVgHFtx8TffKolKCZ+voE8Mw2adnNBTgdL99jrhd3AZ/nScuRHYDt0UBzk/Y7l24AD30NnPhDWl80QHpeT2RKSYmEkmIlsig/3/Kjq5q2O4CGnLc2771lbQyN2sbXsET3i3H5b33MEx5AuoOS+Ihxfcsp4JpMA2BtPW1MeIJbApPDqu/zdDdgkL+0XCGkRtlyqBTAFybv/f7D5gkPIN3VeauvcX3DLyAiIjnVlNg4aMLTUDZPeqyNoVHb+BqWnDEZZuPxjpb36a4Cut5OhgSA86V3FXqDnTFpZD0ksOZG1abHcVamWIvLjA2Xm7sDA9pb3s8sVg55QkRECmLzpMfaGBq1ja9hiZdxd0P7kjuVVQCXTe7ueLpZ3s/WTLt21xTrnWWeMo2cZPoZ3SgHisos72cWq0yfKxER0d2w+SW2agwNAMjKykJISEidympiegfi06OW9/niF2lsGUBqHyNXt0jTWDefAgotdK8vumX+mOjhDraPyxIvd+B+k94U/6rhszX9zB+u4W4QERFRU2TzpCcqKgq5ublQq9U4dOgQRowYgZjbrcwtldVmUqhxefMpYMZe46R1FZVSm5iXM4z7vBQCuMl09+T+NsBDtwceLKsEorcCh016lv1SBIzaKo3jA0iP5IbW8MjOHv5i8tm+dUCaPFB/exiIUj3wv1nAZyZPIP9ioY0SERFRU6W4LusAEPcdsO5n437N3YHerYHfrpu3M/H3Bg4/K2+36u2/AVGbjd3SASC0FeDhat61HgDWDpG6c8qlVA888CWQf824rY0X0EMljSZdbDJY4eMdge0jm8bgj9S0KKlHlJJiJSJJk+69ZQv/0gAjOhvXb5QDP1wwT3g6eAOpI+UfR2ZYJ+Dzx8wn4jt6tXrC894AeRMeQBoSfuuTxlmQAeDSTSDzvHnC83B7YOMwJjxERKQsikx6mrsD344AlquBXq3Ny1p7AjP7ANljgd5+8sR3pwk9gX1PA892l7rUV3EBMDII+O8oYFYTGe+mq6809tFbfaXE0VQPFfDBI1K8LT3liY+IiOhuKfLxlikhgJ+LgAs3pFGCQ1s17QkxL98Efr4GVEKaeuLOxKIp0VdId6WqJhzt2Qpw5d0dqoWSHhkpKVYikjTkvG3C6UHduLgA97WU/imBnxfgJ1MPrfrycOP8OERE5DgU+XiLiKhKeXk5tFot1Go1YmNjodfr61RGRM5HMXd6TG9nERFVqZrOZt26dViwYAG2bNmC0aNH11p2J9YxRI6Pd3qISNEae6obInJcTHqISNEae6obInJcTfrxFntTEFFtqqazGT58OLKyshAWFlanMoB1DJGzadJd1omIalNeXo6EhAQUFhbC398fa9asQXx8PHQ6ncUyDw8PuUMmIpkw6SEiIiKn4BBtepTWLTUqKgoqlQrl5eVyh2LV8ePHERkZiQEDBmDs2LFN/nO9fPkyhgwZgsceewyPPfYYzpw5I3dItdLpdOjRo4fcYdSJSqWCRqOBRqPB+vXr5Q6n3uTq2l7ba9vqc62pnrF1fWmtfrPVsVqrq2x5vLXVkbY6Xmt1nS2Pt7Y61pZ1hKW68m6O1SGSnqpuqenp6QgPD8eWLVvkDsmq1NRUQ4+SpiwgIAA7d+5EZmYm/P39kZ2dLXdIVqlUKmzbtg27du2CWq3GoUOH5A7Jqo0bN+LChQvo0EEZo1X26tULaWlpSEtLQ2xsrNzh1Ju1esKWdUhtr22rz7WmesbW9aW1+s1Wx2qtrrLl8dZWR9rqeK3VdbY83trqWFsdb0115d0cq0MkPeyWahstWrSAp6cnhBAoKCho8nck3N3d4e7ujkceeQQHDhzA0KFD5Q6pRps2bUJhYSGmTZsmdyh1VlBQgMjISGi1Wly/fr32X2hi5OraXttr2/tzlbO+tNWxWqurbHm8tdWRtjpea3WdLY+3tjrWFsdrra68m2N1iKSH3VJta+bMmZgwYQL8/JrIDK612Lt3L6Kjo7Fq1Sq5Q6nR9u3bkZSUBI1Gg5ycHEyfPl3ukGp17tw5ZGRkoH///lixYoXc4dSbXF3ba3tte3+uctaXtj5WS3WVPY63pjrS1sdrqa6zx/HWVMfa4nit1ZV3c6wOkfRUdUsFgKysLISEhMgckWMoKyvDpEmTMHDgQIwbN07ucGp19epVlJWVAZD+8zflNkhLly413Abu1asXPvzwQ7lDsqqkpMTweXp7e8PT01PmiOrPWj1hyzrE2mvL8bnKVV/a8lit1VW2PF5r72vL47VW19nyeK29r62O11pdeVfHKhyAXq8XsbGxYtCgQeK5554TZWVlcodkVUJCgmjbtq149tlnRUFBgdzh1GjVqlUiMDBQqNVqoVarxYoVK+QOyars7Gzx8MMPC7VaLcaMGSNKSkrkDqlOBg4cKHcItcrNzRUPPvigUKvVYuzYseLGjRtyh1RvluqJ5557rsYye7yvLT/XO+sZexyrtfe15bFaqqvscbzW3teWx2uprrPH8Vp7X3vUEVV1ZUOOlV3WiYiIyCk4xOMtIiIiotow6SEiIiKnwKSHiIiInAKTHiIiInIKTHqIiIjIKTDpISIiIqfApIeIiBTv9ddfx1NPPWVYf+211zBkyJAmPUgp2R+THrKr7du3o0WLFsjPzwcAlJaWomfPnk16yggiavpmzZqFXbt24aeffsKyZcuQmpqKr7/+Gh4eHnKHRk0IBycku5s5cyZ2796NvXv3YurUqSgtLWXSQ0QN9vbbb+Prr79GUVERMjIy0KlTJwDAnDlzsHv3brRv3x6rV6+Gt7e3zJGSXHinh+xuwYIFqKiowKhRo5Ceno6lS5fKHRIROYCIiAjk5ORg4cKFhoQnNzcXBQUF2LNnDx5//HH8+9//ljlKkhOTHrK7Zs2aYeHChdi6dSvmzJkDHx8fuUMiIoXLycnB5MmTkZCQYJbY7NmzByNGjAAAjBgxAhkZGXKFSE0Akx6yO71ej7lz5+KZZ57B3LlzUVRUJHdIRKRgZ86cQXR0NJYtW4alS5ciJycHaWlpAKSZwVUqFQBApVLhypUrMkZKcmPSQ3b35ptvolOnTvjyyy8RERGBSZMmyR0SESnUH3/8gSeeeAJ/+9vfMGrUKHh7e+O1117DnDlzAACtWrUyfLEqKipC69at5QyXZMaGzGRX27Ztw4QJE3D48GG0adMGly5dQnh4OBYsWICJEyfKHR4ROZiqNj7r16/H8uXLcevWLUydOlXusEgmTHqIiMihzZ49GxkZGWjXrh1Wr17NdoROjEkPEREROQW26SEiIiKnwKSHiIiInAKTHiIiInIKTHqIiIjIKTDpISIiIqfApIeIiIicApMeIiIicgpMeoiIiMgpMOkhIiIip/D/AXM8IK2J6FiqAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 576x216 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "pos = y_train == 1\n",
    "neg = y_train == 0\n",
    "\n",
    "fig,ax = plt.subplots(1,2,figsize=(8,3))\n",
    "#plot 1, single variable\n",
    "ax[0].scatter(x_train[pos], y_train[pos], marker='x', s=80, c = 'red', label=\"y=1\")\n",
    "ax[0].scatter(x_train[neg], y_train[neg], marker='o', s=100, label=\"y=0\", facecolors='none', \n",
    "              edgecolors=dlc[\"dlblue\"],lw=3)\n",
    "\n",
    "ax[0].set_ylim(-0.08,1.1)\n",
    "ax[0].set_ylabel('y', fontsize=12)\n",
    "ax[0].set_xlabel('x', fontsize=12)\n",
    "ax[0].set_title('one variable plot')\n",
    "ax[0].legend()\n",
    "\n",
    "#plot 2, two variables\n",
    "plot_data(X_train2, y_train2, ax[1])\n",
    "ax[1].axis([0, 4, 0, 4])\n",
    "ax[1].set_ylabel('$x_1$', fontsize=12)\n",
    "ax[1].set_xlabel('$x_0$', fontsize=12)\n",
    "ax[1].set_title('two variable plot')\n",
    "ax[1].legend()\n",
    "plt.tight_layout()\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7b4fe2b1",
   "metadata": {},
   "source": [
    "Note in the plots above:\n",
    "- In the single variable plot, positive results are shown both a red 'X's and as y=1. Negative results are blue 'O's and are located at y=0.\n",
    "   - Recall in the case of linear regression, y would not have been limited to two values but could have been any value.\n",
    "- In the two-variable plot, the y axis is not available.  Positive results are shown as red 'X's, while negative results use the blue 'O' symbol.\n",
    "    - Recall in the case of linear regression with multiple variables, y would not have been limited to two values and a similar plot would have been three-dimensional."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5e6e6ea7",
   "metadata": {},
   "source": [
    "## Linear Regression approach\n",
    "In the previous week, you applied linear regression to build a prediction model. Let's try that approach here using the simple example that was described in the lecture. The model will predict if a tumor is benign or malignant based on tumor size.  Try the following:\n",
    "- Click on 'Run Linear Regression' to find the best linear regression model for the given data.\n",
    "    - Note the resulting linear model does **not** match the data well. \n",
    "One option to improve the results is to apply a *threshold*. \n",
    "- Tick the box on the 'Toggle 0.5 threshold' to show the predictions if a threshold is applied.\n",
    "    - These predictions look good, the predictions match the data\n",
    "- *Important*: Now, add further 'malignant' data points on the far right, in the large tumor size range (near 10), and re-run linear regression.\n",
    "    - Now, the model predicts the larger tumor, but data point at x=3 is being incorrectly predicted!\n",
    "- to clear/renew the plot, rerun the cell containing the plot command."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "e4a1381a",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-06-17T10:46:33.152861Z",
     "start_time": "2022-06-17T10:46:32.749084Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x288 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "w_in = np.zeros((1))\n",
    "b_in = 0\n",
    "plt.close('all') \n",
    "addpt = plt_one_addpt_onclick( x_train,y_train, w_in, b_in, logistic=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6948f2eb",
   "metadata": {},
   "source": [
    "The example above demonstrates that the linear model is insufficient to model categorical data. The model can be extended as described in the following lab."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "13908e91",
   "metadata": {},
   "source": [
    "## Congratulations!\n",
    "In this lab you:\n",
    "- explored categorical data sets and plotting\n",
    "- determined that linear regression was insufficient for logistic regression."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6da6af32",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "bbe562f4",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
